const express = require('express');
const router = express.Router();
const message = require("../controllers/messageController");
const msgObj = new message();
const SensitiveFilter = require('sensitive-word-filter')

// 编写接口
// 发布留言
// 请求地址：http://localhost:3001/api/msg/publish
// 请求方式：POST
// 参数： msg_text, imgUrl, user_id, username 
router.post('/publish', async (req, res) => {
    let { msg_text, imgUrl, user_id, username } = req.body;
    if (msg_text == undefined || imgUrl == undefined || user_id == undefined || username == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数"
        })
    } else {
        const filteredWishText = SensitiveFilter.filter(msg_text);
        if (filteredWishText != msg_text) {
            res.send({
                code: -1,
                msg: "请勿发布敏感信息"
            })
        } else {
            await msgObj.publish(msg_text, imgUrl, user_id, username)
                .then(
                    resule => {
                        res.send(resule)
                    },
                    err => {
                        res.send(err)
                    }
                )
        }
    }
})

// 修改留言
// 请求方式：POST
// 请求地址：http://localhost:3001/api/msg/modify?msg_text=测试&id=1
// 参数： msg_text ，id
router.post('/modify', async (req, res) => {
    let { msg_text, id } = req.body;
    if (msg_text == undefined || id == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数"
        })
    } else {
        await msgObj.modify(msg_text, id).then(
            result => {
                res.send(result)
            },
            err => {
                res.send(err)
            }
        )
    }
})

// 删除留言
// 请求方式：POST
// 请求地址：http://localhost:3001/api/msg/remove?&id=1
// 参数： id
router.post('/remove', async (req, res) => {
    let id = req.body.id;
    if (id == undefined) {
        res.send({
            code: -1,
            msg: '缺少参数'
        })
    } else {
        await msgObj.remove(id).then(
            result => {
                res.send(result)
            },
            err => {
                res.send(err)
            }
        )
    }
})

// 获取留言列表
// 请求方式：POST
// 请求地址：http://localhost:3001/api/msg/list
// 参数：无
router.post('/list', async (req, res) => {
    await msgObj.list().then(
        result => {
            res.send(result)
        },
        err => {
            res.send(err)
        }
    )
})

// 获取留言分页
// 请求方式：POST
// 请求地址：http://localhost:3001/api/msg/items
// 参数：page_num, page_size
router.post('/items', async (req, res) => {
    let { page_num, page_size } = req.body;
    page_num = parseInt(page_num)
    page_size = parseInt(page_size)
    if (page_num == undefined || page_size == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数"
        })
    }
    await msgObj.items(page_num, page_size).then(
        result => {
            res.send(result)
        },
        err => {
            res.send(err)
        }
    )
})

// 搜索留言
// 请求方式：POST
// 搜索地址：http://localhost:3001/api/msg/search
// 参数：keyword
router.post('/search', async (req, res) => {
    let keyword = req.body.keyword;
    await msgObj.search(keyword).then(
        result => {
            res.send(result)
        },
        err => {
            res.send(err)
        }
    )
})

module.exports = router